dxp-ux
[POST] create product (TMF 637)
This operation allows to resend activation link in cases when the URL has expired, or the customer has not received it.
URL
https://[localhost]:[port]/dxp-ux/v1/{businessId}/productURL PARAMS
| name | type | description | required | 
|---|---|---|---|
| businessId | string | 2 letter ISO 3166 country code (TT, BB, JM, PA, PR etc.) identifying the business unit. | Y(PA) | 
Headers
| name | type | description | required (mandatory-Y, optional-N, Not applicable- N/A) | 
|---|---|---|---|
| client_id | string | The client_id identifying the channel. Minimum characters: 5 | Y(PA) | 
| client_secret | string | Password associated with the client_id. Minimum characters: 5 | Y(PA) | 
| X-Correlation-ID | string | Identifier that correlates HTTP request between a client and server. Any identification model (UUDI, checksum, etc.) can be used, as long as it is a unique value to differentiate a transaction. | Y(PA) | 
Data Model - Request
| name | type | description | required (mandatory-Y, optional-N, Not applicable- N/A) | 
|---|---|---|---|
| productSpecification | object | A ProductSpecification is a detailed description of object made available externally in the form of a ProductOffering to customers. | Y(PA) | 
| productSpecification.id | string | Unique identifier of the product | Y(PA) | 
| @baseType | string | When sub-classing, this defines the super-class Note for PA Bango usecase: This value is "product"  | Y(PA) | 
| @type | string | When sub-classing, this defines the sub-class entity name Note for PA Bango usecase: This value is "OTT"  | Y(PA) | 
| @referredType | string | target OTT or streaming Note for PA Bango usecase (for DISNEY OTT): This value is "DISNEY"  | Y(PA) | 
| billingAccount | object | BillingAccount reference. A BillingAccount is a detailed description of a bill structure. | Y(PA) | 
| billingAccount.id | string | Unique identifier of the billing account | Y(PA) | 
| billingAccount.contact[] | array | Contact details of the billingAccount | Y(PA) | 
| billingAccount.contact[].contactType | string | contactType of billingAccount | N(PA) | 
| billingAccount.contact[].contactMedium[] | array | Medium of contact for billingAccount | Y(PA) | 
| billingAccount.contact[].contactMedium[].characteristic | object | Characteristics of the billingAccount contactMedium | Y(PA) | 
| billingAccount.contact[].contactMedium[].characteristic.emailAddress | string | email Address to resend the activation link | Y(PA) | 
| billingAccount.'@baseType' | string | When sub-classing, this defines the super-class | N(PA) | 
| billingAccount.'@type' | string | When sub-classing, this defines the sub-class entity name for billingAccount | N(PA) | 
billingAccount.contact[] subResource request and response -Data Model
| field | value | description | required (mandatory-Y, optional-N, Not applicable- N/A) | examples | 
|---|---|---|---|---|
| contactType | string | contactType of billingAccount | N(PA) | PA: "contactType": "primary" | 
| contactMedium[] | array | Medium of contact for billingAccount | Y(PA) | PA: "contactMedium": [ { "characteristic": { "emailAddress": "abc@gmail.com" } } ]  | 
| contactMedium[].characteristic | object | Characteristics of the billingAccount contactMedium | Y(PA) | PA:"characteristic": { "emailAddress": "donipudi-sai.vaishnavi@capgemini.com" }  | 
| contactMedium[].characteristic.emailAddress | string | email Address of the billingAccount | Y(PA) | PA:  "emailAddress": "abc@gmail.com"  | 
Data Model Response
| name | type | description | required (mandatory-Y, optional-N, Not applicable- N/A) | 
|---|---|---|---|
| id | string | id of the entitlement/product | Y(PA) | 
| status | string | status of the product Note for PA Bango usecase: This value "created"  | Y(PA) | 
| productSpecification | object | A ProductSpecification is a detailed description of object made available externally in the form of a ProductOffering to customers. | Y(PA) | 
| productSpecification.id | string | Unique identifier of the product | Y(PA) | 
| @baseType | string | When sub-classing, this defines the super-class Note for PA Bango usecase: This value is "product"  | Y(PA) | 
| @type | string | When sub-classing, this defines the sub-class entity name  Note for PA Bango usecase: This value is "OTT"  | Y(PA) | 
| @referredType | string | target OTT or streaming Note for PA Bango usecase (for DISNEY OTT): This value is "DISNEY"  | Y(PA) | 
| billingAccount | object | BillingAccount reference. A BillingAccount is a detailed description of a bill structure. | Y(PA) | 
| billingAccount.id | string | Unique identifier of the billing account | Y(PA) | 
| billingAccount.contact[] | array | Contact details of the billingAccount | Y(PA) | 
| billingAccount.contact[].contactType | string | contactType of billingAccount | N(PA) | 
| billingAccount.contact[].contactMedium[] | array | Medium of contact for billingAccount | Y(PA) | 
| billingAccount.contact[].contactMedium[].characteristic | object | Characteristics of the billingAccount contactMedium | Y(PA) | 
| billingAccount.contact[].contactMedium[].characteristic.emailAddress | string | email Address to resend the activation link | Y(PA) | 
| billingAccount.'@baseType' | string | When sub-classing, this defines the super-class | N(PA) | 
| billingAccount.'@type' | string | When sub-classing, this defines the sub-class entity name for billingAccount | N(PA) | 
Key considerations
- Please refer the examples from the following URL - DXP UX - POST Product
 
PA Implementation (Bango usecase)
1.. Following are the mandatory fields in the request:
  - productspecification.id (refers to product id)
  - "@type" should always be "OTT"
  - "@baseType" should always be"product"
  - "@referredType" varies based on streaming. For DISNEY streaming value is "DISNEY".
  - billingAccount.contact[].contactMedium[].characteristic.emailAddress (email Address to resend the activation link)
  - billingAccount.id (refers to the billingAccount number)
2. Once entitlement is available in Bango system user will receive Activation URL to the mentioned emailAddress in the request.Possible Error Scenarios for PA :
IF WE ARE PASSING INVALID '@type' IN REQUEST BODY
{
    "errors": [
        {
            "code": 400,
            "message": "VALIDATION:INVALID_BOOLEAN",
            "description": "Mandatory field @type is not specified or Incorrect value is received. The expected value is OTT"
        }
    ]
}IF WE ARE PASSING INVALID '@referredType' IN REQUEST BODY
{
    "errors": [
        {
            "code": 400,
            "message": "Bango: Error while creating an entitlement",
            "description": "BAD_REQUEST-ProductKey is invalid."
        }
    ]
}